<?php

/**
 * 
 */
class Utilisateur {

    var $mdb2;
    var $login;
    private $nom;
    private $prenom;
    private $id;
    private $role;

    /**
     * 
     * @param type $_mdb2
     */
    function __construct($_mdb2) {
        $this->mdb2 = $_mdb2;
    }

   /**
    * 
    * @param type $nom
    * @param type $prenom
    * @param type $adresse
    * @param type $telephone
    * @param type $email
    * @param type $sexe
    * @param type $codePostal
    * @param type $ville
    * @param type $pays
    * @param type $login
    * @param type $password
    * @return string
    */
    public function ajouter($nom, $prenom, $adresse, $telephone, $email, $sexe, $codePostal, $ville, $pays, $login, $password) {
        $message = null;
        // si l'utilisateur n'existe pas déjà
        if (!$this->existeLogin($login)) {

            $sql = "INSERT INTO utilisateur (nom, prenom, adresse, telephone, mail, sexe, code_postal, ville, pays,";
            $sql .= "login, password, role) VALUES";
            $sql .= "('$nom', '$prenom', '$adresse', '$telephone', '$email', '$sexe', '$codePostal', '$ville', '$pays',";
            $sql .= "'$login', '$password', 'simple')";

            //insertion utilisateur
            $result = $this->mdb2->query($sql);

            //on libere l'objet
            $result->free();

            $message = true;
        } else {
            $message = false;
        }
        return $message;
    }
    
    
    /**
     * Méthode permettant de vérifier si le login passé en parametre existe dans la BDD
     * @param type $login
     * @return boolean
     */
    public function existeLogin($login) {
        $sql = "SELECT * FROM utilisateur WHERE ";
        $sql .= "login='$login' ";
        $result = $this->mdb2->query($sql);

        $row = $result->fetchRow();
        // si résultat
        if ($row) {
            $result->free();
            return true;
        } else {
            $result->free();
            return false;
        }
    }
    /**
     * 
     * @param type $login
     * @param type $password
     * @return boolean
     */
    public function authentifier($login, $password) {
        $sql = "SELECT * FROM utilisateur WHERE ";
        $sql .= "login='$login' AND ";
        $sql .= "password='$password'";
        $result = $this->mdb2->query($sql);

        $row = $result->fetchRow();
        // si résultat
        if ($row) {
            $result->free();
            return true;
        } else {
            $result->free();
            return false;
        }
    }

    /**
     * Renvoie un objet de type utilisateur en fonction 
     * du login saisie
     * @param type $login
     * @return Utilisateur
     */
    public function utilisateurParLogin($login) {
        if (!isset($login)) {
            return;
        } else {
            $sql = "SELECT nom, prenom, id, role FROM utilisateur WHERE ";
            $sql .= "login='$login'";
            $result = $this->mdb2->query($sql);

            $row = $result->fetchRow();

            $this->nom = $row[0];
            $this->prenom = $row[1];
            $this->id = $row[2];
            $this->role = $row[3];

            return $this;
        }
    }

    /*     * ************************************************
     *        Methode GETTER AND SETTER
     * ************************************************ */

    /**
     * 
     * @param type $login
     */
    public function setLogin($login) {
        $this->login = $login;
    }

    /**
     * Renvoie le nom de l'utilisateur courant
     * @return String
     */
    public function getNom() {
        return $this->nom;
    }

    /**
     * Renvoie le prenom de l'utilisateur courant
     * @return String
     */
    public function getPrenom() {
        return $this->prenom;
    }

    public function getId() {
        return $this->id;
    }
    
    public function getRole(){
        return $this->role;
    }

}

?>